Step Definition হল Behavior Driven Development (BDD) এ ব্যবহৃত একটি গুরুত্বপূর্ণ উপাদান। BDD প্রক্রিয়ায়, ব্যবহারকারীর আচরণ এবং প্রত্যাশা বোঝার জন্য ব্যবহারকারী গল্প এবং টেস্ট কেসগুলি তৈরি করা হয়। Step Definition গুলি সেই ব্যবহারকারী গল্পের মধ্যে ব্যবহৃত গঠনমূলক ভাষাকে কোডে রূপান্তরিত করে, যা টেস্ট কেস তৈরি করতে সাহায্য করে।
Step Definition কি?
Step Definition মূলত একটি ফাংশন বা কোড ব্লক যা গঠনমূলক ভাষার (Given-When-Then) ধাপে লিখিত স্টেপগুলোকে কার্যকর করে। এটি BDD টেস্টিং টুলগুলির মাধ্যমে স্বয়ংক্রিয় টেস্টিংয়ে ব্যবহৃত হয়।
- Given: প্রেক্ষাপট নির্ধারণ করে (কোন শর্তের অধীনে)
- When: একটি নির্দিষ্ট কর্ম ঘটে (কী ঘটছে)
- Then: ফলাফলটি কী হওয়া উচিত (প্রত্যাশিত আউটপুট)
উদাহরণ
ধরি, আমাদের একটি ব্যবহারকারীর গল্প আছে:
"যেমন একজন ব্যবহারকারী, আমি লগ ইন করতে চাই যাতে আমি আমার প্রোফাইল দেখতে পারি।"
Step Definition উদাহরণ (Cucumber ব্যবহার করে)
Feature: User Login
Scenario: Successful Login
Given the user is on the login page
When the user enters valid credentials
Then the user should be redirected to the dashboard
Step Definition Implementation
Cucumber বা অন্য কোনও BDD টুলের জন্য Step Definition তৈরি করতে, আপনি কোডে প্রতিটি স্টেপের জন্য একটি ফাংশন লিখবেন।
import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;
import io.cucumber.java.en.Then;
public class LoginSteps {
@Given("the user is on the login page")
public void the_user_is_on_the_login_page() {
// কোড যা লগিন পেজে নিয়ে যাবে
System.out.println("User is on the login page");
}
@When("the user enters valid credentials")
public void the_user_enters_valid_credentials() {
// কোড যা ব্যবহারকারীকে সঠিক ক্রেডেনশিয়াল প্রবেশ করতে সাহায্য করবে
System.out.println("User enters valid credentials");
}
@Then("the user should be redirected to the dashboard")
public void the_user_should_be_redirected_to_the_dashboard() {
// কোড যা নিশ্চিত করবে যে ব্যবহারকারী ড্যাশবোর্ডে পৌঁছেছে
System.out.println("User is redirected to the dashboard");
}
}
সারসংক্ষেপ
Step Definition হল BDD প্রক্রিয়ায় ব্যবহৃত একটি গুরুত্বপূর্ণ উপাদান যা ব্যবহারকারীর গল্পের মধ্যে ব্যবহৃত প্রতিটি স্টেপকে কার্যকর করার জন্য কোড প্রদান করে। উদাহরণস্বরূপ, Cucumber এর মাধ্যমে Step Definition গুলি গঠনমূলক ভাষার (Given-When-Then) ভিত্তিতে তৈরি করা হয় এবং এগুলি স্বয়ংক্রিয় টেস্টিংয়ের জন্য গুরুত্বপূর্ণ। Step Definition গুলি টেস্ট কেসের সাথে সংযুক্ত হয়, যা সফটওয়্যারটির আচরণ নির্ধারণ করে এবং উন্নয়ন প্রক্রিয়ায় গুণগত মান নিশ্চিত করে।
Read more